/**
  ******************************************************************************
  * @file    RTC_Config.h
  * @brief   Real-Time Clock (RTC) configuration header for STM32F10x
  * @author  [Your Name]
  * @version V1.0
  ******************************************************************************
  */

#ifndef __RTC_CONFIG_H
#define __RTC_CONFIG_H

/* 宏定义 ------------------------------------------------------------*/
/**
  * @brief 启用RTC时钟输出功能（可选）
  * @note 取消注释则启用，注释则禁用
  *       启用后需配置对应引脚为复用功能
  */
#define RTCClockOutput_Enable

/* 头文件包含 --------------------------------------------------------*/
#include "stm32f10x.h"          // STM32标准外设库
#include "USART1_Config.h"      // USART1串口配置
#include "time.h"               // C标准时间库

/* 外部变量声明 ------------------------------------------------------*/
/**
  * @brief RTC时间全局变量数组
  * @format 格式: {年, 月, 日, 时, 分, 秒}
  * @example RTC_Time[0] = 2025 (年)
  *          RTC_Time[1] = 5    (月)
  *          RTC_Time[2] = 10   (日)
  *          RTC_Time[3] = 13   (时)
  *          RTC_Time[4] = 45   (分)
  *          RTC_Time[5] = 10   (秒)
  */
extern u16 RTC_Time[];

/* 函数声明 ----------------------------------------------------------*/
/**
  * @brief 初始化RTC使用LSE时钟源
  */
void RTC_LSE_Config(void);

/**
  * @brief 配置RTC相关中断的NVIC设置
  */
void NVIC_Config(void);

/**
  * @brief 配置RTC闹钟中断的EXTI线
  */
void EXTI_Config(void);

/**
  * @brief RTC中断服务函数
  * @note 需在stm32f10x_it.c中声明为弱引用
  */
void RTC_IRQHandler(void);

/**
  * @brief 设置RTC时间（使用RTC_Time数组的值）
  */
void RTC_Set_Time(void);

/**
  * @brief 从RTC读取当前时间到RTC_Time数组
  */
void RTC_Read_Time(void);

/**
  * @brief 通过USART1显示当前RTC时间和寄存器值
  */
void Time_Display(void);

#endif /* __RTC_CONFIG_H */
